﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SISGEZATBZVisual.BusinessEntities;

namespace SISGEZATBZVisual.Repository.Mapping
{
    public class DocenteMap:EntityTypeConfiguration<Docente>
    {
        public DocenteMap()
        {
            this.HasKey(r => r.Id);

            //propiedades
            this.Property(r => r.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

            this.Property(r => r.TipoDeDocumento)
                .HasMaxLength(80)
                .IsRequired();

            this.Property(r => r.NroDocumento)
               .IsRequired().HasMaxLength(80);

            this.Property(c => c.Apellidos)
               .HasMaxLength(200)
               .IsRequired();

            this.Property(c => c.Nombres)
               .HasMaxLength(200)
               .IsRequired();

            this.Property(c => c.Genero)
                  .HasMaxLength(70)
                   .IsRequired();

            this.Property(c => c.FechaNacimiento)
               .IsRequired();

            this.Property(c => c.Departamento)
               .HasMaxLength(200)
               .IsRequired();

            this.Property(c => c.Provincia)
               .HasMaxLength(200)
               .IsRequired();

            this.Property(c => c.Distrito)
               .HasMaxLength(200)
               .IsRequired();

            this.Property(c => c.Domicilio)
               .HasMaxLength(200)
               .IsRequired();
            this.Property(c => c.Telefono)
               .HasMaxLength(70)
               .IsRequired();

            this.Property(c => c.SituacionLaboral)
               .HasMaxLength(255)
               .IsOptional();

            this.Property(c => c.Estado)
               .IsRequired();



            //table
            this.ToTable("Docente");
        }

    }
}
